home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / 33MASTER.DSK / PHONE LIST.bas < prev    next >
BASIC Source File  |  2014-09-09  |  18KB  |  343 lines

  1. 100  REM ***********************
  2. 101  REM *                     *
  3. 102  REM *    W A R N I N G    *
  4. 103  REM *    - - - - - - -    *
  5. 104  REM *                     *
  6. 105  REM *    DO NOT MODIFY    *
  7. 106  REM *  ANY LINE IN THIS   *
  8. 107  REM *   PROGRAM WITH A    *
  9. 108  REM *  LINE NUMBER LESS   *
  10. 109  REM *     THAN 400!!      *
  11. 110  REM *                     *
  12. 111  REM *    PROGRAM WILL     *
  13. 112  REM *   SELF-DESTRUCT!    *
  14. 113  REM *                     *
  15. 114  REM ***********************
  16. 115  REM <CTRL-J><CTRL-J>
  17. 200  DATA 1000
  18. 201  DATA \.......................................
  19. 202  DATA \.......................................
  20. 203  DATA \.......................................
  21. 204  DATA \.......................................
  22. 205  DATA \.......................................
  23. 206  DATA \.......................................
  24. 207  DATA \.......................................
  25. 208  DATA \.......................................
  26. 209  DATA \.......................................
  27. 210  DATA \.......................................
  28. 211  DATA \.......................................
  29. 212  DATA \.......................................
  30. 213  DATA \.......................................
  31. 214  DATA \.......................................
  32. 215  DATA \.......................................
  33. 216  DATA \.......................................
  34. 217  DATA \.......................................
  35. 218  DATA \.......................................
  36. 219  DATA \.......................................
  37. 220  DATA \.......................................
  38. 221  DATA \.......................................
  39. 222  DATA \.......................................
  40. 223  DATA \.......................................
  41. 224  DATA \.......................................
  42. 225  DATA \.......................................
  43. 226  DATA \.......................................
  44. 227  DATA \.......................................
  45. 228  DATA \.......................................
  46. 229  DATA \.......................................
  47. 230  DATA \.......................................
  48. 231  DATA \.......................................
  49. 232  DATA \.......................................
  50. 233  DATA \.......................................
  51. 234  DATA \.......................................
  52. 235  DATA \.......................................
  53. 236  DATA \.......................................
  54. 237  DATA \.......................................
  55. 238  DATA \.......................................
  56. 239  DATA \.......................................
  57. 240  DATA \.......................................
  58. 241  DATA \.......................................
  59. 242  DATA \.......................................
  60. 243  DATA \.......................................
  61. 244  DATA \.......................................
  62. 245  DATA \.......................................
  63. 246  DATA \.......................................
  64. 247  DATA \.......................................
  65. 248  DATA \.......................................
  66. 249  DATA \.......................................
  67. 250  DATA \.......................................
  68. 251  DATA \.......................................
  69. 252  DATA \.......................................
  70. 253  DATA \.......................................
  71. 254  DATA \.......................................
  72. 255  DATA \.......................................
  73. 256  DATA \.......................................
  74. 257  DATA \.......................................
  75. 258  DATA \.......................................
  76. 259  DATA \.......................................
  77. 260  DATA \.......................................
  78. 261  DATA \.......................................
  79. 262  DATA \.......................................
  80. 263  DATA \.......................................
  81. 264  DATA \.......................................
  82. 265  DATA \.......................................
  83. 266  DATA \.......................................
  84. 267  DATA \.......................................
  85. 268  DATA \.......................................
  86. 269  DATA \.......................................
  87. 270  DATA \.......................................
  88. 271  DATA \.......................................
  89. 272  DATA \.......................................
  90. 273  DATA \.......................................
  91. 274  DATA \.......................................
  92. 275  DATA \.......................................
  93. 276  DATA \.......................................
  94. 277  DATA \.......................................
  95. 278  DATA \.......................................
  96. 279  DATA \.......................................
  97. 280  DATA \.......................................
  98. 281  DATA \.......................................
  99. 282  DATA \.......................................
  100. 283  DATA \.......................................
  101. 284  DATA \.......................................
  102. 285  DATA \.......................................
  103. 286  DATA \.......................................
  104. 287  DATA \.......................................
  105. 288  DATA \.......................................
  106. 289  DATA \.......................................
  107. 290  DATA \.......................................
  108. 291  DATA \.......................................
  109. 292  DATA \.......................................
  110. 293  DATA \.......................................
  111. 294  DATA \.......................................
  112. 295  DATA \.......................................
  113. 296  DATA \.......................................
  114. 297  DATA \.......................................
  115. 298  DATA \.......................................
  116. 299  DATA \.......................................
  117. 300  DATA \.......................................
  118. 301  DATA \.......................................
  119. 302  DATA \.......................................
  120. 303  DATA \.......................................
  121. 304  DATA \.......................................
  122. 305  DATA \.......................................
  123. 306  DATA \.......................................
  124. 307  DATA \.......................................
  125. 308  DATA \.......................................
  126. 309  DATA \.......................................
  127. 310  DATA \.......................................
  128. 311  DATA \.......................................
  129. 312  DATA \.......................................
  130. 313  DATA \.......................................
  131. 314  DATA \.......................................
  132. 315  DATA \.......................................
  133. 316  DATA \.......................................
  134. 317  DATA \.......................................
  135. 318  DATA \.......................................
  136. 319  DATA \.......................................
  137. 320  DATA \.......................................
  138. 321  DATA \.......................................
  139. 322  DATA \.......................................
  140. 323  DATA \.......................................
  141. 324  DATA \.......................................
  142. 325  DATA \.......................................
  143. 326  DATA \.......................................
  144. 327  DATA \.......................................
  145. 328  DATA \.......................................
  146. 329  DATA \.......................................
  147. 330  DATA \.......................................
  148. 331  DATA \.......................................
  149. 332  DATA \.......................................
  150. 333  DATA \.......................................
  151. 334  DATA \.......................................
  152. 335  DATA \.......................................
  153. 336  DATA \.......................................
  154. 337  DATA \.......................................
  155. 338  DATA \.......................................
  156. 339  DATA \.......................................
  157. 340  DATA \.......................................
  158. 341  DATA \.......................................
  159. 342  DATA \.......................................
  160. 343  DATA \.......................................
  161. 344  DATA \.......................................
  162. 345  DATA \.......................................
  163. 346  DATA \.......................................
  164. 347  DATA \.......................................
  165. 348  DATA \.......................................
  166. 349  DATA \.......................................
  167. 350  DATA \.......................................
  168. 400  REM <CTRL-J><CTRL-J>SET PRINTER SLOT<CTRL-J><CTRL-J>
  169. 410  LET SL = 1
  170. 450  REM <CTRL-J><CTRL-J>DISK SYSTEM??<CTRL-J><CTRL-J>
  171. 460  IF  PEEK(994) + PEEK(1001) = 192  THEN DISK = 1
  172. 470  IF DISK  THEN  PRINT  CHR$(4)"NOMON C,I,O": HOME 
  173. 500  REM <CTRL-J><CTRL-J>GET ADDRESS OF FIRST DATA STATEMENT<CTRL-J><CTRL-J>
  174. 510  LET START = ( PEEK(103) + PEEK(104) *256 +458)
  175. 550  REM <CTRL-J><CTRL-J>SET FAST/SLOW SEARCH<CTRL-K><CTRL-K><CTRL-J><CTRL-J>
  176. 560  LET OP = 0
  177. 570  GOTO 25000
  178. 700  REM <CTRL-J><CTRL-J>ACTIVATE PRINTER<CTRL-J><CTRL-J>
  179. 710  PR# SL: RETURN 
  180. 750  REM <CTRL-J><CTRL-J>DE-ACTIVATE PRINTER<CTRL-J><CTRL-J>
  181. 760  PR# 0: RETURN 
  182. 800  REM <CTRL-J><CTRL-J>END ROUTINE<CTRL-J><CTRL-J>
  183. 810  IF MF = 0  THEN 890
  184. 820  IF DISK  THEN  PRINT  CHR$(4)"SAVE PHONE LIST": TEXT : HOME : VTAB 22: CALL 976: END 
  185. 830  HOME : VTAB 11: PRINT "INSERT A NEW TAPE INTO THE RECORDER, SET";: PRINT "ON RECORD, AND PRESS 'RETURN' ";: INPUT "";S$
  186. 840  FOR I = 1 TO 1500: NEXT : SAVE : FOR I = 1 TO 2000: NEXT : SAVE 
  187. 850  HOME : VTAB 12: PRINT "THE PROGRAM AND DATA HAVE BEEN SAVED!!<CTRL-G>": VTAB 22: END 
  188. 890  TEXT : HOME : VTAB 22: END 
  189. 1000  REM <CTRL-J><CTRL-J>SEARCH<CTRL-J><CTRL-J>
  190. 1005  GOSUB 3000: IF OP = 1  THEN 1010
  191. 1006  HOME : VTAB 9: HTAB 5: PRINT "WOULD YOU LIKE TO SEARCH BY": PRINT : HTAB 10: PRINT "1  WORD (FAST)": HTAB 7: PRINT "OR 2  CHARACTER (SLOW)"
  192. 1007  VTAB 14: CALL  -868: HTAB 20: INPUT "WHICH: ";SK$:SK =  VAL(SK$): IF SK < >1  AND SK < >2  OR  LEN(SK$) >1  THEN  PRINT "<CTRL-G>": GOTO 1007
  193. 1010  HOME : VTAB 11: HTAB 5: PRINT "PLEASE ENTER THE SEARCH KEY:": VTAB 13: HTAB 5: INPUT "";S$: IF S$ = ""  THEN 25000
  194. 1012  IF PR  THEN  GOSUB 700: PRINT " ": PRINT " "
  195. 1015  HOME : VTAB 1: PRINT " NAME                      PHONE NUMBER": PRINT "----------------------------------------"
  196. 1017  IF PR  THEN  GOSUB 750
  197. 1018  IF S = 2  THEN 2510
  198. 1020  VTAB 12: CALL  -868: HTAB 12: INVERSE : PRINT "<< SEARCHING >>": NORMAL :VT = 2
  199. 1025  RESTORE : READ Z
  200. 1030  LET FO = 0: FOR I = 1 TO NR
  201. 1040  READ NA$: IF  LEFT$(NA$,1) =  CHR$(92)  THEN 1040
  202. 1045  IF SK = 0  OR SK = 1  THEN  IF  LEFT$(NA$, LEN(S$)) < >S$  THEN 1075
  203. 1050  FOR II = 1 TO  LEN(NA$)
  204. 1060  IF  MID$ (NA$,II, LEN(S$)) = S$  THEN FO = FO +1: GOSUB 1100: GOTO 1075
  205. 1070  NEXT II
  206. 1075  NEXT I: IF FO  THEN 1200
  207. 1080  VTAB 12: CALL  -868: HTAB 12: INVERSE : PRINT "<< NOT FOUND >>": NORMAL : IF PR  THEN  GOSUB 700: FOR S = 1 TO 4: PRINT " ": NEXT : GOSUB 750
  208. 1090  PRINT  CHR$(7): FOR I = 1 TO 1500: NEXT I: GOTO 25000
  209. 1099  STOP 
  210. 1100  REM <CTRL-J><CTRL-J>GOT ONE!<CTRL-J><CTRL-J>
  211. 1102  LET VT = VT +1: IF VT > = 21  AND PR < >1  THEN  GOSUB 1300
  212. 1104  IF FO = 1  THEN  VTAB 12: CALL  -868
  213. 1105  IF PR  THEN  GOSUB 700
  214. 1110  VTAB VT: HTAB 1: PRINT NA$
  215. 1120  IF PR  THEN  GOSUB 750
  216. 1140  IF I < = NR  THEN  RETURN 
  217. 1200  IF PR  THEN  GOSUB 700: PRINT " ": PRINT " ": PRINT " ": PRINT " ": GOSUB 750
  218. 1210  VTAB 22: CALL  -868: PRINT "THAT'S ALL OF THEM! - PRESS 'RETURN' ";: INPUT "";S$: GOTO 25000
  219. 1299  STOP 
  220. 1300  REM <CTRL-J><CTRL-J>GOT A FULL PAGE<CTRL-J><CTRL-J>
  221. 1310  VTAB 22: CALL  -958: PRINT "ENTER 'RTN' TO CONT - 'ESC' FOR MENU ";: GET T$
  222. 1320  IF T$ =  CHR$(27)  THEN  POP : GOTO 25000
  223. 1330  IF T$ =  CHR$(13)  THEN  VTAB 3: HTAB 1: CALL  -958:VT = 3: RETURN 
  224. 1340  PRINT  CHR$(7): GOTO 1300
  225. 2499  STOP 
  226. 2500  REM <CTRL-J><CTRL-J>LIST EVERYTHING<CTRL-J><CTRL-J>
  227. 2504  GOSUB 3000
  228. 2505  GOTO 1012
  229. 2510  RESTORE : READ Z
  230. 2530  LET VT = 2:FO = 0: FOR I = 1 TO NR
  231. 2540  READ NA$: IF  LEFT$(NA$,1) =  CHR$(92)  AND I < = NR  THEN 2540
  232. 2542  GOSUB 1100
  233. 2545  IF VT > = 22  THEN VT = 2: VTAB 3: CALL  -958
  234. 2550  NEXT I
  235. 2560  GOTO 1200
  236. 3000  REM <CTRL-J><CTRL-J>IS DATA FILE EMPTY?<CTRL-J><CTRL-J>
  237. 3010  HOME : RESTORE : IF NR = 0  THEN  VTAB 12: HTAB 9: INVERSE : PRINT "<< NO NAMES ON FILE  >><CTRL-G>": NORMAL : FOR I = 1 TO 2000: NEXT I: POP : GOTO 25000
  238. 3020  RETURN 
  239. 4000  REM <CTRL-J><CTRL-J>ENTER LISTINGS<CTRL-J><CTRL-J>
  240. 4010  HOME : IF NR > = 150  THEN  VTAB 12: HTAB 12: PRINT "DATA TABLE FULL!<CTRL-G>": FOR I = 1 TO 2000: NEXT : GOTO 25000
  241. 4020  POKE 32,3: VTAB 10: CALL  -958: PRINT "ENTER NEW NAME AND PRESS 'RETURN'.": PRINT "(USE NO COMMAS, COLONS OR QUOTES.": PRINT "TWENTY-FIVE CHARACTERS, MAXIMUM.)"
  242. 4030  VTAB 14: INPUT "-> ";A$: GOSUB 6100:NN$ = B$: IF NN$ = ""  AND S = 5  THEN  POKE 32,0: POP : GOTO 25000
  243. 4035  IF NN$ = ""  THEN  POKE 32,0: GOTO 25000
  244. 4040  IF  LEN(NN$) >25  THEN  PRINT "<CTRL-G>": GOTO 4020
  245. 4050  VTAB 10: CALL  -958: PRINT "ENTER NEW NUMBER THEN PRESS 'RETURN'.": PRINT "(USE THE FORMAT: XXX XXX XXXX)"
  246. 4060  VTAB 13: INPUT "-> ";A$: GOSUB 6100:NP$ = B$: IF NP$ = ""  AND S = 5  THEN  POKE 32,0: POP : GOTO 25000
  247. 4065  IF NP$ = ""  THEN  POKE 32,0: GOTO 25000
  248. 4070  IF  LEN(NP$) < >12  THEN  PRINT "<CTRL-G>": GOTO 4050
  249. 4100  REM <CTRL-J><CTRL-J>IS ENTRY CORRECT?<CTRL-J><CTRL-J>
  250. 4110  TEXT : HOME : VTAB 8: PRINT "HERE IS THE ";: INVERSE : PRINT "NAME";: NORMAL : PRINT " ENTRY:": VTAB 10: HTAB 14: PRINT NN$
  251. 4120  VTAB 12: PRINT "AND THE ";: INVERSE : PRINT "PHONE NUMBER";: NORMAL : PRINT ":": VTAB 14: HTAB 14: PRINT NP$
  252. 4140  VTAB 18: HTAB 8: CALL  -868: INPUT "ARE THEY CORRECT (Y/N) ";S$: IF  LEFT$(S$,1) = "Y"  THEN 4180
  253. 4150  IF  LEFT$(S$,1) < >"Y"  AND S = 5  THEN  POP : GOTO 6000
  254. 4160  IF  LEFT$(S$,1) < >"N"  THEN  PRINT "<CTRL-G>": GOTO 4100
  255. 4170  GOTO 4000
  256. 4175  IF S = 5  THEN 4200
  257. 4180  IF S = 5  THEN 4200
  258. 4190  LET UD = 1
  259. 4200  REM <CTRL-J><CTRL-J>PAD TO 40 CHARACTERS<CTRL-J><CTRL-J>
  260. 4210  FOR I =  LEN(NN$) TO (39 - LEN(NP$)):NN$ = NN$ +".": NEXT 
  261. 4220  LET NN$ = NN$ +NP$: IF S = 5  THEN  RETURN 
  262. 4250  REM <CTRL-J><CTRL-J>UPDATE DATA NUMBER<CTRL-J><CTRL-J>
  263. 4260  RESTORE : READ T:T = T +UD:CU = (START -11)
  264. 4270  LET T$ =  STR$(T): FOR I = 1 TO  LEN(T$)
  265. 4280  POKE (CU +I), ASC( MID$ (T$,I,1)): NEXT 
  266. 4290  IF S = 4  THEN  RETURN 
  267. 4300  REM <CTRL-J><CTRL-J>FIND EMPTY DATA LINE<CTRL-J><CTRL-J>
  268. 4310  READ T$: IF  LEFT$(T$,1) < > CHR$(92)  THEN 4310
  269. 4320  LET LN =  PEEK(123) + PEEK(124) *256
  270. 4350  REM <CTRL-J><CTRL-J>CALCULATE OFFSET<CTRL-J><CTRL-J>
  271. 4360  LET CU = (START +((LN -201) *46))
  272. 4400  REM <CTRL-J><CTRL-J>POKE DATA LINE<CTRL-J><CTRL-J>
  273. 4410  FOR I = CU TO (CU +39)
  274. 4420  POKE I, ASC( MID$ (NN$,I +1 -CU,1)): NEXT 
  275. 4450  REM <CTRL-J><CTRL-J>SET UPDATE FLAG<CTRL-J><CTRL-J>
  276. 4460  LET MF = MF +1: IF S = 4  OR S = 5  THEN  RETURN 
  277. 4470  GOTO 25000
  278. 4499  STOP 
  279. 5000  REM <CTRL-J><CTRL-J>DELETE DATA CONTENTS<CTRL-J><CTRL-J>
  280. 5005  HOME : GOSUB 3000
  281. 5010  HOME : VTAB 10: PRINT "PLEASE ENTER THE NAME OF THE PARTY YOU": PRINT "WISH DELETED FROM THE DIRECTORY AND": PRINT "PRESS 'RETURN'."
  282. 5020  VTAB 14: INPUT "-> ";K$: IF K$ = ""  AND S = 5  THEN  POP : GOTO 25000
  283. 5030  IF K$ = ""  THEN 25000
  284. 5050  REM <CTRL-J><CTRL-J>FIND AN EXACT MATCH<CTRL-J><CTRL-J>
  285. 5060  RESTORE : READ Z:UU = 1
  286. 5070  READ NA$: IF  LEFT$(NA$, LEN(K$)) = K$  THEN 5100
  287. 5075  IF  LEFT$(NA$,1) =  CHR$(92)  AND UU < = NR  THEN 5070
  288. 5080 UU = UU +1
  289. 5081  IF UU < = NR  THEN 5070
  290. 5082  HOME : GOTO 25000
  291. 5100  REM <CTRL-J><CTRL-J>FOUND A MATCH<CTRL-J><CTRL-J>
  292. 5110  LET LN =  PEEK(123) + PEEK(124) *256:UU = UU +1
  293. 5120  HOME : VTAB 11: PRINT NA$: IF S = 5  THEN  RETURN 
  294. 5130  VTAB 13: CALL  -868: INPUT "DO YOU WISH TO DELETE THIS DATA (Y/N) ";S$: IF  LEFT$(S$,1) = "Y"  THEN 5200
  295. 5140  IF  LEFT$(S$,1) < >"N"  THEN  PRINT "<CTRL-G>": GOTO 5130
  296. 5150  GOTO 5081
  297. 5200  REM <CTRL-J><CTRL-J>OK THEN, KILL IT!<CTRL-A><CTRL-J><CTRL-J>
  298. 5210  LET UD =  -1: GOSUB 4250
  299. 5220  LET CU = (START +((LN -201) *46))
  300. 5230  POKE CU, ASC( CHR$(92))
  301. 5240  GOSUB 4450: GOTO 25000
  302. 6000  REM <CTRL-J><CTRL-J>EDIT A DATA LINE<CTRL-J><CTRL-J>
  303. 6010  HOME : GOSUB 3000
  304. 6012  HOME : VTAB 10: PRINT "PLEASE ENTER THE NAME OF THE PARTY WHOSE";: PRINT "LISTING YOU WISH TO EDIT AND PRESS": PRINT "'RETURN'.": GOSUB 5020
  305. 6020  VTAB 13: CALL  -868: INPUT "DO YOU WISH TO EDIT THIS DATA (Y/N) ";S$: IF S$ = ""  THEN 25000
  306. 6030  IF  LEFT$(S$,1) = "Y"  THEN NN$ = NA$: GOTO 6050
  307. 6035  IF  LEFT$(S$,1) = "N"  THEN  GOSUB 5070
  308. 6040  PRINT "<CTRL-G>": GOTO 6020
  309. 6050  REM <CTRL-J><CTRL-J>GO EDIT THE LINE<CTRL-J><CTRL-J>
  310. 6060  HOME : VTAB 8: PRINT NN$: GOSUB 4020: GOSUB 4360
  311. 6070  GOTO 25000
  312. 6100  REM  <CTRL-J><CTRL-J>REMOVE CONTROL CHARS.<CTRL-J><CTRL-J>
  313. 6105 B$ = ""
  314. 6107  IF   NOT  LEN(A$)  THEN  RETURN 
  315. 6110  FOR I = 1 TO  LEN(A$)
  316. 6120  IF  ASC( MID$ (A$,I,1)) >26  THEN B$ = B$ + MID$ (A$,I,1)
  317. 6130  NEXT I
  318. 6140  RETURN 
  319. 24000  REM <CTRL-J><CTRL-J>PRINTER ON/OFF<CTRL-J><CTRL-J>
  320. 24010  LET PR =   NOT PR: GOTO 25050
  321. 24020  STOP 
  322. 25000  REM <CTRL-J><CTRL-J>MAIN MENU<CTRL-J><CTRL-J>
  323. 25005  RESTORE : READ NR:NR = NR -1000
  324. 25010  TEXT : HOME : VTAB 1: PRINT "----------------------------------------";: INVERSE 
  325. 25020  PRINT " APPLE COMPUTER, INC.        PHONE LIST ";: NORMAL : PRINT "----------------------------------------"
  326. 25030  PRINT "PROGRAM CURRENTLY CONTAINS "NR" LISTING";: IF NR < >1  THEN  PRINT "S";
  327. 25040  PRINT : PRINT "ROOM FOR "(150 -NR)" ADDITIONAL LISTINGS"
  328. 25050  VTAB 8: PRINT "THE PRINTER IS";: IF   NOT PR  THEN  PRINT "  OFF";
  329. 25055  IF   NOT PR  THEN  VTAB 9: PRINT "                                   ": GOTO 25070
  330. 25060  PRINT " ";: FLASH : PRINT " ON ": NORMAL 
  331. 25070  VTAB 10: PRINT "YOU MAY CHOOSE FROM THE FOLLOWING:": POKE 32,5: PRINT : PRINT 
  332. 25080  PRINT "1  SEARCH FOR A LISTING": PRINT "2  LIST THE ENTIRE FILE"
  333. 25090  PRINT "3  ENTER NEW LISTINGS": PRINT "4  DELETE A LISTING"
  334. 25100  PRINT "5  EDIT A LISTING": PRINT "6  PRINTER ON/OFF"
  335. 25110  PRINT "7  EXIT THIS PROGRAM": POKE 32,0: PRINT 
  336. 25120  POKE 32,0: PRINT 
  337. 25130  VTAB 22: HTAB 20: CALL  -868: INPUT "WHICH: ";S$:S =  VAL(S$)
  338. 25140  IF S <1  OR S >7  THEN  PRINT  CHR$(7): GOTO 25130
  339. 25150  ON S GOTO 1000,2500,4000,5000,6000,24000,800
  340. 25160  STOP 
  341. 65533  REM <CTRL-J><CTRL-J><CTRL-J>
  342. 65534  REM APPLE COMPUTER, INC.
  343. 65535  REM  COPYRIGHT 4/1/1979